<?php

include_once(dirname(__FILE__)."\Conexao.php");
include_once(dirname(__FILE__)."\FamiliaDAO.php");
include_once(dirname(dirname(__FILE__))."\classes\Produto.php");

/**
 * Classe ProdutoDAO
 *
 * @author Falci
 * @package dao
 */
class ProdutoDAO {

    public function  __construct() {
        new Conexao();
    }

    public function inserir($produto){
        $sql = "INSERT INTO produto VALUES(0,".$produto->getFamilia()->getId().",".$produto->getDerivacao().",'".$produto->getNome()."',1);";
        return mysql_query($sql);
    }

    public function alterar($produto){
        $sql = "UPDATE produto SET familia=".$produto->getFamilia()->getId().", derivacao=".$produto->getDerivacao().",nome='".$produto->getNome()."' WHERE id=".$produto->getId().";";
        return mysql_query($sql);
    }

    public function excluir($produto){
        $sql = "UPDATE produto SET status=0 WHERE id=".$produto->getId().";";
        return mysql_query($sql);
    }

    public function listar(){
        $array = Array();
        $query = mysql_query("SELECT * FROM produto WHERE status=1 ORDER BY nome");
        while ($row = mysql_fetch_object($query)) {
            $produto = new Produto;
            $familia = new FamiliaDAO;
            $produto->setId($row->id);
            $produto->setFamilia($familia->buscaPorId($row->familia));
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $array []= $produto;
        }

        return $array;
    }

    public function listarPorFamilia($familia){
        $array = Array();
        $query = mysql_query("SELECT * FROM produto WHERE status=1 AND familia=".$familia->getId()." ORDER BY nome");
        while ($row = mysql_fetch_object($query)) {
            $produto = new Produto;
            $produto->setId($row->id);
            $produto->setFamilia($familia);
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $array []= $produto;
        }

        return $array;
    }

    public function buscaPorId($id){
        $produto = new Produto;
        $familia = new FamiliaDAO;
        $query = mysql_query("SELECT * FROM produto WHERE id=$id ORDER BY nome");
        while ($row = mysql_fetch_object($query)) {
            $produto->setId($row->id);
            $produto->setFamilia($familia->buscaPorId($row->familia));
            $produto->setDerivacao($row->derivacao);
            $produto->setNome($row->nome);
            $produto->setStatus($row->status);
        }

        return $produto;
    }

    public function totalRegistros(){
        $query = mysql_query("SELECT COUNT(p.id) FROM familia f, produto p WHERE f.id=p.familia AND f.status=1 AND p.status=1;");
        return mysql_result($query, 0);
    }

    public function listarPag($pagina=1){
        global $_CFG;
        $primeiro = $pagina * $_CFG['ppp'] - $_CFG['ppp'];
        $sql = "SELECT p.id,p.familia,p.derivacao,f.nome fam,p.nome FROM familia f, produto p WHERE f.status=1 AND p.status=1 AND p.familia=f.id ORDER BY f.nome,p.nome LIMIT $primeiro,$_CFG[ppp];";
        $query = mysql_query($sql) or die(mysql_error());
        $saida = Array();

        while ($row = mysql_fetch_array($query)) {
            $saida []= $row;
        }

        return $saida;
    }

    public function pesquisar($q){
        global $_CFG;
        $sql = "SELECT p.id,p.familia,p.derivacao,f.nome fam,p.nome FROM familia f, produto p WHERE f.status=1 AND p.status=1 AND p.familia=f.id AND CONCAT(p.nome,' ',f.nome) like '%$q%' ORDER BY f.nome,p.nome LIMIT ".($_CFG['maxResult']+1).";";
        $query = mysql_query($sql);
        $saida = Array();

        while ($row = mysql_fetch_array($query)) {
            $saida []= $row;
        }

        return $saida;
    }
}
?>